/**
 * Copyright (C) 2014 The logback-extensions developers (logback-user@qos.ch)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package ch.qos.logback.ext.loggly;

/**
 * JMX Mbean interface for the {@link LogglyBatchAppender}.
 *
 * @author <a href="mailto:cleclerc@xebia.fr">Cyrille Le Clerc</a>
 */
public interface LogglyBatchAppenderMBean {

    void processLogEntries();

    /**
     * Number of bytes sent to Loggly.
     */
    long getSentBytes();

    /**
     * Duration spent sending logs to Loggly.
     */
    long getSendDurationInNanos();

    /**
     * Number of successful invocations to Loggly's send logs API.
     */
    int getSendSuccessCount();

    /**
     * Number of failing invocations to Loggly's send logs API.
     */
    int getSendExceptionCount();

    /**
     * Number of discarded buckets
     */
    int getDiscardedBucketsCount();

    /**
     * Size in bytes of the log entries that have not yet been sent to Loggly.
     */
    long getCurrentLogEntriesBufferSizeInBytes();

    boolean isDebug();

    /**
     * Enable debugging
     */
    void setDebug(boolean debug);
}
